package fiuba.algo3.persistencia;

import fiuba.algo3.XMLProcessor.nucleo.NodoXML;

public abstract class ConstructorPrimitivos
{
	static private Boolean obtenerBoolean(NodoXML nodo)
	{
		return Boolean.parseBoolean(nodo.obtenerPrimogenito().valor());
	}

	static private Integer obtenerInteger(NodoXML nodo)
	{
		return Integer.parseInt(nodo.obtenerPrimogenito().valor());
	}

	static private Float obtenerFloat(NodoXML nodo)
	{
		return Float.parseFloat(nodo.obtenerPrimogenito().valor());
	}

	static private String obtenerString(NodoXML nodo)
	{
		return nodo.obtenerPrimogenito().valor();
	}

	static Object construir(NodoXML nodoPrimitivo)
	{
		if (!nodoPrimitivo.nombre().equals("primitivo")) return null;
		String valor = nodoPrimitivo.obtenerValorAtributo("tipo");

		if (valor.equals("boolean")) return (Object)obtenerBoolean(nodoPrimitivo);
		else if (valor.equals("integer")) return (Object)obtenerInteger(nodoPrimitivo);
		else if (valor.equals("float")) return (Object)obtenerFloat(nodoPrimitivo);
		else if (valor.equals("string")) return (Object)obtenerString(nodoPrimitivo);
		else return null;
	}
}
